package po

import "time"

type Tag struct {
	Id       int64     `json:"id"`
	GroupID  int64     `xorm:"group_id" json:"group_id"`
	Value    string    `xorm:"value" json:"value"`
	Describe string    `xorm:"describe" json:"describe"`
	Created  time.Time `xorm:"created" json:"created"`
	Updated  time.Time `xorm:"updated" json:"updated"`
	Deleted  time.Time `xorm:"deleted" json:"-"`
}

type TagDetail struct {
	Id            int64  `xorm:"tag_id" json:"tag_id"`
	Value         string `xorm:"tag_value" json:"tag_value"`
	Describe      string `xorm:"tag_describe" json:"tag_describe"`
	GroupID       int64  `xorm:"tag_group_id" json:"tag_group_id"`
	GroupValue    string `xorm:"tag_group_value" json:"tag_group_value"`
	GroupDescribe string `xorm:"tag_group_describe" json:"tag_group_desribe"`
}

type TagGroup struct {
	Id       int64     `json:"id"`
	Value    string    `xorm:"value" json:"value"`
	Describe string    `xorm:"describe" json:"describe"`
	Created  time.Time `xorm:"created" json:"created"`
	Updated  time.Time `xorm:"updated" json:"updated"`
	Deleted  time.Time `xorm:"deleted" json:"-"`
}

func (r TagGroup) TableName() string {
	return "label_tag_group"
}

type TagGroupUser struct {
	Id         int64
	TagGroupId int64  `xorm:"tag_group_id"`
	UserId     string `xorm:"user_id"`
	GroupId    int64  `xorm:"group_id"`
}

func (r TagGroupUser) TableName() string {
	return "label_tag_group_to_user"
}

type TagUser struct {
	Id      int64
	TagId   int64  `xorm:"tag_id"`
	UserId  string `xorm:"user_id"`
	GroupId int64  `xorm:"group_id"`
}

func (r TagUser) TableName() string {
	return "label_tag_to_user"
}

type TagObj struct {
	Id      int64     `json:"id"`
	TagId   int64     `xorm:"tag_id" json:"tag_id"`
	ObjId   int64     `xorm:"obj_id" json:"obj_id"`
	ObjType string    `xorm:"obj_type" json:"obj_type"`
	Created time.Time `xorm:"created" json:"created"`
	Updated time.Time `xorm:"updated" json:"updated"`
	Deleted time.Time `xorm:"deleted" json:"-"`
}
